home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / SCIENTIF / 0807.ZIP / ATMOS.BAS < prev    next >
BASIC Source File  |  1987-09-28  |  3KB  |  129 lines

  1. ' PROGRAM "ATMOS"
  2.  
  3. ' COPYRIGHT (C) 1982 BY DAVID EAGLE
  4.  
  5. ' PUBLIC DOMAIN FOR IBM-PC ON NOVEMBER 21, 1986
  6.  
  7. ' IBM-PC  << MICROSOFT QUICKBASIC COMPILER VERSION 3.0 >>
  8.  
  9. ' DETERMINES PROPERTIES OF THE STANDARD ATMOSPHERE
  10.  
  11. ' TEMPERATURE, DEGREES FAHRENHEIT AND CELSIUS
  12. ' PRESSURE, NEWTONS PER SQUARE METER
  13. ' DENSITY, KILOGRAMS PER CUBIC METER
  14.  
  15. '**********************************************************
  16.  
  17. DEFDBL A-Z
  18.  
  19. CONST C0=288.15D0
  20. CONST F0=518.67D0
  21. CONST ALTITUDE0=10999.9272D0
  22. CONST PRESSURE0=101325.016D0
  23. CONST DENSITY0=1.22557D0
  24.  
  25. DO
  26.    CLS
  27.    PRINT
  28.    PRINT
  29.    PRINT "Program ATMOS"
  30.    PRINT "(C) Copyright 1982 by David Eagle"
  31.    PRINT
  32.    PRINT "Microsoft QuickBASIC Compiler"
  33.    PRINT "(C) Copyright Microsoft Corp. 1982-1987"
  34.    PRINT
  35.    CALL KEYCHECK
  36.  
  37.    CLS
  38.    PRINT
  39.    PRINT
  40.    PRINT
  41.    PRINT TAB(32);"Program ATMOS"
  42.    PRINT
  43.    PRINT
  44.    PRINT "Initial Altitude ( meters )"
  45.    INPUT IALT
  46.    PRINT
  47.    PRINT
  48.    PRINT "Final Altitude ( meters )"
  49.    INPUT FALT
  50.    PRINT
  51.    PRINT
  52.    PRINT "Altitude increment ( meters )"
  53.    INPUT DALT
  54.  
  55.    J%=INT(IALT/DALT+.5D0)
  56.    K%=INT(FALT/DALT+.5D0)
  57.  
  58.    CLS
  59.    PRINT
  60.    PRINT TAB(5);"ALTITUDE";TAB(25);"PRESSURE";TAB(45);"DENSITY";TAB(65);"TEMPERATURE";
  61.    PRINT TAB(4);"( meters )";TAB(24);"( nt/sq m )";TAB(44);"( kg/m^3 )";TAB(64);"( degrees F, C )";
  62.    PRINT
  63.    PRINT
  64.  
  65.    FOR I%=J% TO K%
  66.        PNUM%=PNUM%+1
  67.        ALTITUDE=I%*DALT
  68.  
  69.        IF ALTITUDE < ALTITUDE0 THEN
  70.           RHO2=1D0-2.2556913D-5*ALTITUDE
  71.           RHO1=RHO2^5.256116D0
  72.        ELSE
  73.           RHO1=.2233618D0*EXP(1.7345477D0-1.576872D-4*ALTITUDE)
  74.           RHO2=.7519D0
  75.        END IF
  76.  
  77.        DRATIO=RHO1/RHO2
  78.        PRESSURE=RHO1*PRESSURE0
  79.        DENSITY=DRATIO*DENSITY0
  80.  
  81.        TEMPF=RHO2*F0-459.67D0
  82.        TEMPC=RHO2*C0-273.15D0
  83.  
  84.        ' PRINT DATA
  85.  
  86.        PRINT
  87.        PRINT USING "######.##";TAB(2);ALTITUDE;TAB(25);PRESSURE;
  88.        PRINT USING "###.#######";TAB(42);DENSITY;
  89.        PRINT USING "###.##";TAB(64);TEMPF;TAB(73);TEMPC
  90.  
  91.        IF PNUM%=7 THEN
  92.           CALL KEYCHECK
  93.           CLS
  94.           PRINT
  95.           PNUM%=0
  96.        END IF
  97.  
  98.    NEXT I%
  99.  
  100.    IF PNUM%>0 AND PNUM%<7 THEN CALL KEYCHECK
  101.  
  102.    CLS
  103.    PRINT
  104.    PRINT
  105.    PRINT "Another selection ( y = yes, n = no )"
  106.    INPUT SELECTION$
  107. LOOP UNTIL INSTR("nN",SELECTION$)
  108.  
  109. END
  110.  
  111. '**********************************************************
  112.  
  113. SUB KEYCHECK STATIC
  114.  
  115.     ' CHECK USER RESPONSE SUBROUTINE
  116.  
  117.     PRINT
  118.     PRINT
  119.     PRINT
  120.     PRINT TAB(25);"< press any key to continue >"
  121.  
  122.     A$=""
  123.     WHILE A$=""
  124.       A$=INKEY$
  125.     WEND
  126.  
  127. END SUB
  128.  
  129.